package com.cxl.parser;

import java.util.List;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;

/**
 * 信息抓取接口
 * @author Administrator
 *
 */
public interface InfoGrab<T> {
	
	public Parser getParser(T url) ;
	
	/**
	 * 获得商品名称
	 * @param url
	 * @return
	 */
	public String getTitle(T url);
	
	/**
	 * 获得品牌
	 * @param url
	 * @return
	 */
	public String getBrand(T url);
	
	/**
	 * 获得型号
	 * @param url
	 * @return
	 */
	public String getXingHao(T url);
	
	/**
	 * 抓取图片地址
	 * @return
	 */
	public String getImgHref(T url);
	/**
	 * 抓取主要内容
	 * @return
	 */
	public String getContent(T url); 
	/**
	 * 搜索商品页的 所有商品链接地址
	 * @return
	 */
	public List<String> searchGoodsUrl(T url);
	/**
	 * 获得下一页url
	 * @param url
	 * @return
	 */
	public String getNextUrl(T  url);
	/**
	 * 搜索商品价格
	 * @param url
	 * @return
	 */
	public Double getPrice(T  url);
	/**
	 * 字符串转数字
	 * @param moneyStr
	 * @return
	 */
	public Double getMoney(String moneyStr);
	
	/**
	 * 得到url所有下一页商品的地址
	 * @param url
	 * @return
	 */
	public List getAllNextGoodsUrl(T  url);
	
	/**
	 * 网页是否存在
	 * @return
	 */
	public boolean isExists(String url);
	
	
	/**
	 * 根据过滤器，node大小 获得相关需要的节点信息
	 * @param url
	 * @param filter
	 * @param num -1:根据node大小返回;1:返回1个node;other:返回指定数目的 前提是other数量不能大于实际size
	 * @return
	 */
	public NodeList getNodesByFilter(T url,NodeFilter filter,int num) ;
	
	
}
